
import javax.swing.KeyStroke;

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
/**
  * Clase que crea los Menus
  * @author Matías Díaz
  * @author Sergio Flores  
 */
public class MenuObject
{

    private String name;
    private int mnemonic;
    private KeyStroke accelerator;
    private boolean separator;

    /**
     * Costructor vacio que solo crea el objeto
     */
    public MenuObject ()
    {
    }

    /**
     *Costructor que inializa el mnemonic del menu
     * @param name nombre que tendra el menu.
     */
    public MenuObject ( String name )
    {
        this.name = name;
        this.mnemonic = -1;
        this.accelerator = null;
        this.separator = false;
    }

    /**
     * Metodo constructor que inicializa el objeto con un numero y un nombre,
     * @param name nombre del menu.
     * @param mnemonic numero que se asignara al mnemonic.
     */
    public MenuObject ( String name , int mnemonic )
    {
        this.name = name;
        this.mnemonic = mnemonic;
        this.accelerator = null;
        this.separator = false;
    }

    /**
     *
     * @param name
     * @param accelerator
     */
    public MenuObject ( String name , KeyStroke accelerator )
    {
        this.name = name;
        this.accelerator = accelerator;
    }

    /**
     * metodo costructor que crea un objeto con nombre, mnemonic y un acelerador.
     * @param name nombre del menu
     * @param mnemonic mnemonic del menu
     * @param accelerator acelerador del menu
     */
    public MenuObject ( String name , int mnemonic , KeyStroke accelerator )
    {
        this ( name , mnemonic );
        this.accelerator = accelerator;
    }

    /**
     * metodo que checkea si un menu tiene mnemonic
     * @return true o false si tiene o no menu.
     */
    public boolean hasMnemonic ()
    {
        return ( this.mnemonic != -1 );
    }

    /**
     * Metod que setea si es o no un separador este item.
     * @param separator es o no separador.
     */
    public void setSeparator ( boolean separator )
    {
        this.separator = separator;
    }

    /**
     * Metodo que checkea si el item es o no separador
     * @return true o false si es o no acelerador.
     */
    public boolean isSeparator ()
    {
        return separator;
    }

    /**
     *Metodo que retorna el acelerador del menu
     * @return keystroke del menu.
     */
    public KeyStroke getAccelerator ()
    {
        return accelerator;
    }

    /**
     * Metodo que setea el acelerador de un menu
     * @param acelerador de un menu
     */
    public void setAccelerator ( KeyStroke accelerator )
    {
        this.accelerator = accelerator;
    }

    /**
     * Metodo que retorna el mnemonic
     * @return entero correspondiente al mnemonic
     */
    public int getMnemonic ()
    {
        return mnemonic;
    }

    /**
     * Metodo que setea el mnemonic
     * @param mnemonic a setear
     */
    public void setMnemonic ( int mnemonic )
    {
        this.mnemonic = mnemonic;
    }

    /**
     *metodo que retorna el nombre del menu
     * @return string con el nombre
     */
    public String getName ()
    {
        return name;
    }

    /**
     * Metodo que setea el nombre del menu
     * @param name string que se seteara al nombre dle menu.
     */
    public void setName ( String name )
    {
        this.name = name;
    }

    /**
     * metodo que checkea que exista un acelerador
     * @return true o false si tiene el acelerador.
     */ 
    public boolean hasAccelerator ()
    {
        return ( this.accelerator != null );
    }
}
